package com.bsoft.gol.hcs.specialist.entity;

import javax.persistence.*;
import java.util.Date;
import java.util.Objects;

/**
 * @author tongtp
 * @version v0.1
 * @className FusAnswerDiagnosisInfo
 * @description
 * @create 2020-08-03 15:27
 **/
@Entity
@Table(name = "fus_answer_diagnosis_info")
public class FusAnswerDiagnosisInfo {
	private long fusAnswerDiagnosisInfoId;
	private String userInfoId;
	private String titleId;
	private Date createTime;
	private String patientId;
	private String cardType;
	private String cardNumber;
	private String patientMedicalCardNumber;
	private Integer patientMedicalCardType;
	private byte subassemblyType;
	private String diagnosisId;
	private String diagnosisName;
	private byte diagnosisType;
	private long diseaseTypeId;
	private String diseaseTypeName;
	private Date answerTime;
	private String reportId;

	@Id
	@Column(name = "fus_answer_diagnosis_info_id")
	@GeneratedValue(strategy = GenerationType.IDENTITY)
	public long getFusAnswerDiagnosisInfoId() {
		return fusAnswerDiagnosisInfoId;
	}

	public void setFusAnswerDiagnosisInfoId(long fusAnswerDiagnosisInfoId) {
		this.fusAnswerDiagnosisInfoId = fusAnswerDiagnosisInfoId;
	}

	@Basic
	@Column(name = "user_info_id")
	public String getUserInfoId() {
		return userInfoId;
	}

	public void setUserInfoId(String userInfoId) {
		this.userInfoId = userInfoId;
	}

	@Basic
	@Column(name = "title_id")
	public String getTitleId() {
		return titleId;
	}

	public void setTitleId(String titleId) {
		this.titleId = titleId;
	}

	@Basic
	@Column(name = "create_time")
	public Date getCreateTime() {
		return createTime;
	}

	public void setCreateTime(Date createTime) {
		this.createTime = createTime;
	}

	@Basic
	@Column(name = "patient_id")
	public String getPatientId() {
		return patientId;
	}

	public void setPatientId(String patientId) {
		this.patientId = patientId;
	}

	@Basic
	@Column(name = "card_type")
	public String getCardType() {
		return cardType;
	}

	public void setCardType(String cardType) {
		this.cardType = cardType;
	}

	@Basic
	@Column(name = "card_number")
	public String getCardNumber() {
		return cardNumber;
	}

	public void setCardNumber(String cardNumber) {
		this.cardNumber = cardNumber;
	}

	@Basic
	@Column(name = "patient_medical_card_number")
	public String getPatientMedicalCardNumber() {
		return patientMedicalCardNumber;
	}

	public void setPatientMedicalCardNumber(String patientMedicalCardNumber) {
		this.patientMedicalCardNumber = patientMedicalCardNumber;
	}

	@Basic
	@Column(name = "patient_medical_card_type")
	public Integer getPatientMedicalCardType() {
		return patientMedicalCardType;
	}

	public void setPatientMedicalCardType(Integer patientMedicalCardType) {
		this.patientMedicalCardType = patientMedicalCardType;
	}

	@Basic
	@Column(name = "subassembly_type")
	public byte getSubassemblyType() {
		return subassemblyType;
	}

	public void setSubassemblyType(byte subassemblyType) {
		this.subassemblyType = subassemblyType;
	}

	@Basic
	@Column(name = "diagnosis_id")
	public String getDiagnosisId() {
		return diagnosisId;
	}

	public void setDiagnosisId(String diagnosisId) {
		this.diagnosisId = diagnosisId;
	}

	@Basic
	@Column(name = "diagnosis_name")
	public String getDiagnosisName() {
		return diagnosisName;
	}

	public void setDiagnosisName(String diagnosisName) {
		this.diagnosisName = diagnosisName;
	}

	@Basic
	@Column(name = "diagnosis_type")
	public byte getDiagnosisType() {
		return diagnosisType;
	}

	public void setDiagnosisType(byte diagnosisType) {
		this.diagnosisType = diagnosisType;
	}

	@Basic
	@Column(name = "disease_type_id")
	public long getDiseaseTypeId() {
		return diseaseTypeId;
	}

	public void setDiseaseTypeId(long diseaseTypeId) {
		this.diseaseTypeId = diseaseTypeId;
	}

	@Basic
	@Column(name = "disease_type_name")
	public String getDiseaseTypeName() {
		return diseaseTypeName;
	}

	public void setDiseaseTypeName(String diseaseTypeName) {
		this.diseaseTypeName = diseaseTypeName;
	}

	@Basic
	@Column(name = "answer_time")
	public Date getAnswerTime() {
		return answerTime;
	}

	public void setAnswerTime(Date answerTime) {
		this.answerTime = answerTime;
	}

	@Basic
	@Column(name = "report_id")
	public String getReportId() {
		return reportId;
	}

	public void setReportId(String reportId) {
		this.reportId = reportId;
	}

	@Override
	public boolean equals(Object o) {
		if (this == o) {
            return true;
        }
		if (o == null || getClass() != o.getClass()) {
            return false;
        }
		FusAnswerDiagnosisInfo that = (FusAnswerDiagnosisInfo) o;
		return fusAnswerDiagnosisInfoId == that.fusAnswerDiagnosisInfoId &&
				subassemblyType == that.subassemblyType &&
				diagnosisType == that.diagnosisType &&
				diseaseTypeId == that.diseaseTypeId &&
				Objects.equals(userInfoId, that.userInfoId) &&
				Objects.equals(titleId, that.titleId) &&
				Objects.equals(createTime, that.createTime) &&
				Objects.equals(patientId, that.patientId) &&
				Objects.equals(cardType, that.cardType) &&
				Objects.equals(cardNumber, that.cardNumber) &&
				Objects.equals(patientMedicalCardNumber, that.patientMedicalCardNumber) &&
				Objects.equals(patientMedicalCardType, that.patientMedicalCardType) &&
				Objects.equals(diagnosisId, that.diagnosisId) &&
				Objects.equals(diagnosisName, that.diagnosisName) &&
				Objects.equals(diseaseTypeName, that.diseaseTypeName) &&
				Objects.equals(answerTime, that.answerTime) &&
				Objects.equals(reportId, that.reportId);
	}

	@Override
	public int hashCode() {
		return Objects.hash(fusAnswerDiagnosisInfoId, userInfoId, titleId, createTime, patientId, cardType, cardNumber
				, patientMedicalCardNumber, patientMedicalCardType, subassemblyType, diagnosisId, diagnosisName,
				diagnosisType, diseaseTypeId, diseaseTypeName, answerTime, reportId);
	}
}
